package com.ygxsk.carhome.ui.complain;

import android.app.Activity;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.core.widget.NestedScrollView;
import androidx.recyclerview.widget.RecyclerView;

import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.ColorUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.LogUtils;
import com.blankj.utilcode.util.NetworkUtils;
import com.blankj.utilcode.util.PathUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ThreadUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.flyco.roundview.RoundTextView;
import com.gyf.immersionbar.ImmersionBar;
import com.hjq.permissions.OnPermissionCallback;
import com.hjq.permissions.XXPermissions;
import com.hjq.toast.Toaster;
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
import com.scwang.smart.refresh.layout.api.RefreshLayout;
import com.scwang.smart.refresh.layout.listener.OnRefreshListener;
import com.trello.rxlifecycle4.android.ActivityEvent;
import com.yanzhenjie.album.Action;
import com.yanzhenjie.album.Album;
import com.yanzhenjie.album.AlbumFile;
import com.yanzhenjie.album.api.widget.Widget;
import com.yanzhenjie.permission.AndPermission;
import com.yanzhenjie.permission.runtime.Permission;
import com.ygxsk.carhome.R;
import com.ygxsk.carhome.alertview.AlertView;
import com.ygxsk.carhome.alertview.OnItemClickListener;
import com.ygxsk.carhome.configeng.GifSizeFilter;
import com.ygxsk.carhome.configeng.Glide4Engine;
import com.ygxsk.carhome.constant.ConstantApi;
import com.ygxsk.carhome.constant.ConstantSign;
import com.ygxsk.carhome.constant.ExtraKey;
import com.ygxsk.carhome.event.EventBusComplaintFeedBack;
import com.ygxsk.carhome.imagepick.ImageBean;
import com.ygxsk.carhome.imagepick.ImageShowPickerBean;
import com.ygxsk.carhome.imagepick.ImageShowPickerListener;
import com.ygxsk.carhome.imagepick.ImageShowPickerView;
import com.ygxsk.carhome.imagepick.Loader;
import com.ygxsk.carhome.listener.AuthorityCallbackListener;
import com.ygxsk.carhome.listener.Delivery;
import com.ygxsk.carhome.listener.ErrorParentExtraSingle;
import com.ygxsk.carhome.permission.PermissionSetting;
import com.ygxsk.carhome.permission.RuntimeRationale;
import com.ygxsk.carhome.response.ComplaintImageBean;
import com.ygxsk.carhome.response.EvaReapirSatisfactionBean;
import com.ygxsk.carhome.response.SuggestionEvaluateVo;
import com.ygxsk.carhome.response.SuggestionHandleVo;
import com.ygxsk.carhome.response.SuggestionsDetailBean;
import com.ygxsk.carhome.retrofit.AddLogUpLoadInfo;
import com.ygxsk.carhome.retrofit.ApiException;
import com.ygxsk.carhome.retrofit.ApiRequestSubListener;
import com.ygxsk.carhome.retrofit.ApiService;
import com.ygxsk.carhome.retrofit.ErrorConsumer;
import com.ygxsk.carhome.retrofit.NetworkManager;
import com.ygxsk.carhome.retrofit.ResponseTransformer;
import com.ygxsk.carhome.sys.PermissionInterceptor;
import com.ygxsk.carhome.sys.PermissionNameConvert;
import com.ygxsk.carhome.ui.ErrorActivity;
import com.ygxsk.carhome.ui.adapter.ImageInDetailAdapter;
import com.ygxsk.carhome.ui.adapter.SatisfactionAdapter;
import com.ygxsk.carhome.utils.CommUtils;
import com.ygxsk.carhome.utils.StringCodeUtils;
import com.ygxsk.carhome.utils.TaskPicUtils;
import com.ygxsk.carhome.utils.TimeUtilSer;
import com.ygxsk.carhome.views.ClearEditText;
import com.ygxsk.carhome.views.MyLinearLayoutManager;
import com.ygxsk.carhome.views.NoScrollGridView;
import com.ygxsk.integrated.retrofit.Parameterkey;
import com.zhongjh.albumcamerarecorder.album.filter.BaseFilter;
import com.zhongjh.albumcamerarecorder.listener.OnResultCallbackListener;
import com.zhongjh.albumcamerarecorder.settings.AlbumSetting;
import com.zhongjh.albumcamerarecorder.settings.CameraSetting;
import com.zhongjh.albumcamerarecorder.settings.GlobalSetting;
import com.zhongjh.albumcamerarecorder.settings.MultiMediaSetting;
import com.zhongjh.common.entity.LocalFile;
import com.zhongjh.common.entity.MultiMedia;
import com.zhongjh.common.entity.SaveStrategy;
import com.zhongjh.common.enums.MimeType;
import com.zxy.tiny.Tiny;
import com.zxy.tiny.callback.FileCallback;

import org.greenrobot.eventbus.EventBus;

import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import butterknife.BindView;
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
import io.reactivex.rxjava3.disposables.CompositeDisposable;
import io.reactivex.rxjava3.disposables.Disposable;
import io.reactivex.rxjava3.functions.Consumer;
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.RequestBody;

/*
 * @Author:itchenqi
 * @Time:2021/10/12 0012  16:43
 * @Description: 投诉建议的详情 和 投诉回访 是一个详情， 但是底部的内容 比投诉处理的多
 */
public class ComplainFeedBackOrHandlerDetailActivity extends ErrorActivity implements ErrorParentExtraSingle {

    interface PicChooseCallbackInComplaintFeedBack {

        void clickCamera(int position);

        void clickCameraAndroid13(int position);

        //void clickCameraIsXiaomi(int position);

        void clickAlbum(int position, int remainNum);

        void clickAlbumAndroid13(int position, int remainNum);

    }

    /**
     * 做拍照还是相册的选择
     */
    private AlertView mAlertView;
    /**
     * 该界面的权限弹窗
     */
    private PermissionSetting mSetting;

    /**
     * 该界面之中包裹所有的布局的包裹布局
     */
    @BindView(R.id.nested_scroll_viewinsuggestions)
    NestedScrollView nested_Scroll_ViewInSuggestions;

    //查找界面上的控件
    @BindView(R.id.refreshlayoutinsuggestionsdetail)
    SmartRefreshLayout refreshLayoutInSuggestionsDetail;

    //----------------------------------------------------------
    /**
     * 投诉建议的类型顶部的
     */
    @BindView(R.id.textsuggestioncategorydetail)
    TextView textViewSuggestionCategoryDetail;

    /**
     * 投诉建议的状态，尚未解决 和 已经解决的 小文本
     */
    @BindView(R.id.textviewsuggestionsstate)
    TextView textViewSuggestionsState;

    /**
     * 投诉建议的简略内容 只有一行文字
     */
    @BindView(R.id.textsuggestioncontentintroduction)
    TextView textViewSuggestionContentIntroduction;
    //----------------------------------------------------------

    /**
     * 报修人的房间编号内容
     */
    //@BindView(R.id.textviewsuggestionsroomcode)
    //TextView textViewSuggestionsRoomCode;

    /**
     * 提交建议人的  提交时间
     */
    @BindView(R.id.textviewsuggestiontime)
    TextView textViewSuggestionTime;

    /**
     * 包裹员工的账号的布局内容
     */
    @BindView(R.id.layoutcontentsuggestionemployeename)
    RelativeLayout layoutContentSuggestionEmployeeName;

    /**
     * 添加业主自己的投诉建议的
     */
    @BindView(R.id.layoutcontentsuggestionownername)
    RelativeLayout layoutContentSuggestionOwnerName;

    /**
     * 房屋编号内容
     */
    @BindView(R.id.laycontentsuggestionhousenumber)
    RelativeLayout laycontentSuggestionHouseNumber;

    /**
     * 提交建议人的姓名内容：填充提交人的信息
     */
    @BindView(R.id.textviewsuggestionemployeename)
    TextView textviewSuggestionEmployeeName;

    //----------------------------------------------------------
    /**
     * 拨打手机号码布局的外侧的包裹布局
     */
    @BindView(R.id.layoutphonerightinfeedbackdetail)
    RelativeLayout layoutPhoneRightInFeedBackDetail;

    /**
     * 提交建议人的 电话手机号内容
     */
    @BindView(R.id.textviewsuggestphone)
    TextView textViewSuggestPhone;

    //----------------------------------------------------------
    /**
     * 投诉建议的类别在底部的
     */
    @BindView(R.id.textviewsuggestioncategorybottom)
    TextView textViewSuggestionCategoryBottom;

    /**
     * 投诉建议的内容在底部的
     */
    @BindView(R.id.textviewsuggestioncontentbottom)
    TextView textViewSuggestionContentBottom;

    //----------------------------------------------------------
    /**
     * 原始图片的包裹内容，如果没有原始图片 那么就隐藏这个布局
     */
    @BindView(R.id.layoutcomplaintimages)
    RelativeLayout layoutComplaintImages;

    /**
     * 添加投诉建议的时候 添加的原始图片 反馈图片
     */
    @BindView(R.id.gridviewcomplaintimages)
    NoScrollGridView gridViewComplaintImages;

    //----------------------------------------------------------
    //2021年11月10日新增的3个内容
    /**
     * 小区名称
     */
    @BindView(R.id.textviewsuggestioncommunity)
    TextView textviewSuggestionCommunity;

    /**
     * 投诉人的房屋编号
     */
    @BindView(R.id.textviewsuggestionhousenumber)
    TextView textviewSuggestionHouseNumber;

    /**
     * 投诉人的属于业主投诉的姓名
     */
    @BindView(R.id.textviewsuggestionownername)
    TextView textviewSuggestionOwnerName;

    //----------------------------------------------------------
    //----------------------------------------------------------
    //----------------------------------------------------------
    //如下几个布局是成对儿出现的，一起的。

    //装载底部文章九宫格上传图片的信息列表
    private ArrayList<ImageBean> uploadImageListPass = new ArrayList<>();

    /**
     * 包裹处理 投诉建议的 待处理 的添加提交处理内容。添加图片布局也在内
     */
    @BindView(R.id.linearlayoutcomplainthandlerall)
    LinearLayout linearLayoutComplaintHandlerAll;

    /**
     * 提交投诉回访的底部按钮的布局
     */
    @BindView(R.id.layoutbuttonincomplainthandler)
    LinearLayout layoutButtonInComplaintHandler;

    /**
     * 提交的按钮的布局内容
     */
    @BindView(R.id.buttonsubmitincomplaintfeedback)
    RoundTextView buttonSubmitInComplaintFeedBack;
    //------

    //未回访的内容，现在添加回访的文本和 回访的图片。
    /**
     * 提交回访的内容文本，字数暂时不限制
     */
    @BindView(R.id.editcomplaintfeedsubmitcontent)
    ClearEditText editComplaintFeedSubmitContent;

    /**
     * 提交回访的图片内容
     */
    @BindView(R.id.it_picker_view_complaintfeedback)
    ImageShowPickerView it_picker_view_complaintfeedback;

    //----------------------------------------------------------
    //----------------------------------------------------------
    //----------------------------------------------------------
    //----------------------------------------------------------
    //物业已经完成回复的布局内容

    //----------------------------------------------------------
    /**
     * 物业待处理的投诉-变成已处理,之后的布局内容。
     */
    @BindView(R.id.layoutcontentcomplainthandlercomplate)
    LinearLayout layoutContentComplaintHandlerComplate;

    /**
     * 描述文字 是从【投诉已处理过来的，叫处理时间】
     */
    @BindView(R.id.textviewsuggestionfeedbacktimedes)
    TextView textviewSuggestionFeedBackTimeDes;


    /**
     * 添加人员处理的处理人信息
     */
    @BindView(R.id.textviewsuggestionperson)
    TextView textViewSuggestionPerson;

    /**
     * 物业回复的时间内容
     */
    @BindView(R.id.textviewsuggestioncallbacktime)
    TextView textViewSuggestionCallbackTime;

    /**
     * 完成时间 2022年9月28日11:39:56 添加
     */
    @BindView(R.id.textviewsuggestioncallbackfinishtime)
    TextView textViewSuggestionCallbackFinishtime;

    //----------------------------------------------------------
    /**
     * 处理内容 的描述文字 如果是从【投诉已处理 过来的叫 处理内容】
     */
    @BindView(R.id.textviewsuggestionfeedbackcontentdes)
    TextView textViewSuggestionFeedBackContentDes;

    /**
     * 物业回复的所有的文本内容在底部的
     */
    @BindView(R.id.textviewsuggestioncallbackcontent)
    TextView textViewSuggestionCallbackContent;

    //----------------------------------------------------------

    /**
     * 物业处理的 图片的布局 :一行提示文字+九宫格的图片内容
     */
    @BindView(R.id.laycontentsuggestionhandlerimage)
    RelativeLayout laycontentSuggestionhandlerImage;

    /**
     * 物业员工 处理 的图片内容 是多张图片，是九宫格才对。
     */
    @BindView(R.id.gridviewemployeefeedbackimages)
    NoScrollGridView gridViewEmployeeFeedBackImages;

    //----------------------------------------------------------
    /**
     * 包裹 底部的回访评价的内容
     */
    @BindView(R.id.footercomplaintfeedbackviewcontent)
    LinearLayout footerComplaintFeedBackViewContent;

    /**
     * 包裹九宫格的回访的内容
     */
    @BindView(R.id.recyclersatisfactioncomplaintfeedback)
    RecyclerView recyclerSatisfactionComplaintFeedback;

    /**
     * 投诉的 回访的内容
     */
    @BindView(R.id.textviewcomplaintfeedbacktextcontent)
    TextView textViewComplaintFeedBackTextContent;
    //----------------------------------------------------------
    //----------------------------------------------------------
    //----------------------------------------------------------
    //----------------------------------------------------------
    /**
     * 携带过来的投诉建议的
     */
    //private SuggestionsBean extra_suggestionsBean;

    /**
     * 从哪里跳转过来携带的东西
     */
    private int jumpFromFlag;

    /**
     * 添加投诉建议的id内容
     */
    private String extra_suggestionId;
    /**
     * 携带投诉建议工单的状态
     */
    private int extra_complaintfeedback_suggestion_state = 0;

    /**
     * 携带从 已处理 或者 未处理 的列表 过来标识.
     */
    private int extra_complaintfeedback_suggestion_status_inlist;

    private Tiny.FileCompressOptions compressOptions;
    //----------------------------------------------------------


    //------------------------------------------------------------------------------
    private CompositeDisposable mCompositeDisposable = new CompositeDisposable();
    //------------------------------------------------------------------------------

    private GlobalSetting mGlobalSetting;
    //----------------------------------------------------------

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mActivityInstance = this;

        mSetting = new PermissionSetting(this);

        processExtraData();

        if (uploadImageListPass == null) {
            uploadImageListPass = new ArrayList<>();
        }

        if (mCompositeDisposable == null) {
            mCompositeDisposable = new CompositeDisposable();
        }

        //做图片压缩的配置。
        compressOptions = new Tiny.FileCompressOptions();
        compressOptions.config = Bitmap.Config.ARGB_8888;
        //compressOptions.config = Bitmap.Config.RGB_565

        initloading();

        initViews();

        gainDatas();


    }

    @Override
    public Resources getResources() {
        return super.getResources();
    }

    @Override
    protected int getContentViewId() {
        return R.layout.activity_complain_feed_back_detail;
    }

//    @Override
//    protected void setStatusBar() {
//        super.setStatusBarParent(this.findViewById(R.id.complaintfeedbackdetailactivityoutside));
//    }

    @Override
    protected void initImmersionBar() {
        super.initImmersionBar();

        ImmersionBar.with(this)//
                .titleBar(R.id.toolbarygxskout)
                .fitsSystemWindows(true)//解决状态栏和布局重叠问题，任选其一，默认为false，当为true时一定要指定statusBarColor()，不然状态栏为透明色，还有一些重载方法
                //.statusBarColor(R.color.colorPrimary)//
                //.navigationBarColor(R.color.colorPrimary)//
                //.keyboardEnable(true)
                .init();
    }


    @Override
    protected void initToolBar(ToolbarHelper toolbarHelper) {

        //请求头内容
//        toolbarHelper.setLayoutSao(false, null);

        toolbarHelper.setTitle(getString(R.string.complan_detail));

        toolbarHelper.setLayoutLeft(true, R.drawable.backicon, new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                checkEdit();
            }
        });

        toolbarHelper.setLayoutClose(false, "", null);

        toolbarHelper.setLayoutRight(false, 0, "", null);

    }

    @Override
    protected void onClickNodata(View v) {

        //其他的一些初始化 或者 重新获取数据。
        gainDatas();

    }

    @Override
    protected void initViews() {

        //添加 回访 图片提交的内容
        methodHandlerOutSideViewBySuggestionState();

        //界面上的一些处理,例如下拉刷新的处理
        refreshLayoutInSuggestionsDetail.setOnRefreshListener(new OnRefreshListener() {
            @Override
            public void onRefresh(@NonNull RefreshLayout refreshLayout) {
                refreshLayout.getLayout().post(new Runnable() {
                    @Override
                    public void run() {

                        gainDatas();

                        refreshLayout.finishRefresh();

                    }
                });
            }
        });

    }

    /**
     * 处理外侧的大布局 根据 状态
     */
    private void methodHandlerOutSideViewBySuggestionState() {

        //根据携带过来的数据先处理布局的显示或者隐藏
        if (extra_complaintfeedback_suggestion_state == 1 || extra_complaintfeedback_suggestion_state == 2) {

            Delivery.getInstance().post(new Runnable() {

                @Override
                public void run() {

                    //物业回访的内容更是要隐藏的
                    CommUtils.setViewGone(layoutContentComplaintHandlerComplate);

                    methodRxImagePickerViewListener();

                    //特别重要：如果是从【投诉统计】的列表内的查看【未完成】的列表进来的，那末，这个【提交按钮】只能是灰色，只能看 不能操作的。
                    //展示提交回访的文本内容+提交照片的布局 包裹
                    CommUtils.setViewVisible(linearLayoutComplaintHandlerAll);
                    //展示底部的提交 按钮布局
                    CommUtils.setViewVisible(layoutButtonInComplaintHandler);

                    //按钮是可用的
                    if (buttonSubmitInComplaintFeedBack != null) {

                        buttonSubmitInComplaintFeedBack.getDelegate().setBackgroundColor(ColorUtils.getColor(R.color.redcomm));
                        buttonSubmitInComplaintFeedBack.getDelegate().setBackgroundPressColor(ColorUtils.getColor(R.color.red_pressed));

                        buttonSubmitInComplaintFeedBack.getDelegate().setStrokeColor(ColorUtils.getColor(R.color.redcomm));
                        buttonSubmitInComplaintFeedBack.getDelegate().setStrokePressColor(ColorUtils.getColor(R.color.red_pressed));

                        buttonSubmitInComplaintFeedBack.setTextColor(ColorUtils.getColor(R.color.white));

                        //提交按钮的点击事件也放在这里书写
                        buttonSubmitInComplaintFeedBack.setOnClickListener(new View.OnClickListener() {

                            @Override
                            public void onClick(View v) {

                                //uploadImageListPass的内容 不是必填项  所以不用拦截操作
                                //应该是先拦截，后提交才对。
                                //提交回访 的文本信息是 必填项
                                String complaintFeedBackContent = editComplaintFeedSubmitContent.getText().toString().trim();

                                if (TextUtils.isEmpty(complaintFeedBackContent)) {
                                    CommUtils.method_showAlert(mActivityInstance, getString(R.string.please_input_handler_content), mAlertView);
                                    return;
                                }

                                //----------------------------------------------------------------------------------------------------------------
                                //这些都检测成功之后，走弹窗确认处理
                                mAlertView = new AlertView(ConstantSign.ALERT_TITLE, //
                                        getResources().getString(R.string.clearaddorsubmitsuremessage), //确定提交吗
                                        getResources().getString(R.string.clearcachecancel), //取消
                                        new String[]{getResources().getString(R.string.clearcachetitlesure)}, //确定
                                        null, mActivityInstance, AlertView.Style.Alert, new OnItemClickListener() {//
                                    @Override
                                    public void onItemClick(Object o, int position) {

                                        if (position != AlertView.CANCELPOSITION) {

                                            //有没有其他的限制？
                                            methodUploadComplaintFeedBackInfoTrans(uploadImageListPass);

                                        }
                                    }
                                });

                                mAlertView.setCancelable(true);
                                mAlertView.show();

                            }
                        });
                    }


                }
            });


        } else if (extra_complaintfeedback_suggestion_state == 6) {//已回访，那么就该给物业回复 界面展示出来。

            Delivery.getInstance().post(new Runnable() {
                @Override
                public void run() {

                    //隐藏提交回访的文本内容+提交照片的布局 包裹
                    CommUtils.setViewGone(linearLayoutComplaintHandlerAll);

                    //隐藏底部的提交 按钮布局
                    CommUtils.setViewGone(layoutButtonInComplaintHandler);

                    //物业回访的内容更是要展示
                    CommUtils.setViewVisible(layoutContentComplaintHandlerComplate);

                }
            });


        }

    }

    //经过改造之后的
    private void methodUploadComplaintFeedBackInfoTrans(ArrayList<ImageBean> _uploadImageListPass) {

        String complaintFeedBackContentInside = editComplaintFeedSubmitContent.getText().toString().trim();

        //做日志上传的内容
        ArrayList<String> addLogList = new ArrayList<>();

        //直接调用接口，因为图片的信息不是必传.
        //List<Binary> binaries = new ArrayList<>();

        for (ImageBean imageBean : _uploadImageListPass) {

            String imagePath = imageBean.getImageShowPickerUrl();
            //LogUtils.d("itchen---imagePathUpLoad==" + imagePath);

            if (!TextUtils.isEmpty(imagePath)) {

                //FileBinary fileBinary = new FileBinary(new File(imagePath));
                //fileBinary.setUploadListener(WHAT_UPLOAD_SINGLE, null);
                //binaries.add(fileBinary);

                addLogList.add(imagePath);

            } else {
//                LogUtils.d("itchen---->添加报修的图片地址 imagePath 是空的");
            }

        }

//        {
//                "suggestionId": 1736, //投诉建议id
//                "fileList": [], //图片文件集合
//                "isExtension": 1, //是否延期
//                "solveContent": "", //处理内容
//                "extensionApproveCusId": 1, //审批延期人的id
//                "extensionCountent": "延期原因" //延期原因
//        }

        HashMap<String, Object> hashMapParameter = new HashMap<>();
        hashMapParameter.put(Parameterkey.suggestionId, extra_suggestionId);//投诉建议id
        hashMapParameter.put(Parameterkey.isExtension, 0);//1是否延期
        hashMapParameter.put(Parameterkey.solveContent, complaintFeedBackContentInside);//处理内容
        hashMapParameter.put(Parameterkey.fileList, addLogList);//图片文件集合

        AddLogUpLoadInfo addLogUpLoadInfo = new AddLogUpLoadInfo();
        addLogUpLoadInfo.setActivity(mActivityInstance);
        addLogUpLoadInfo.setWhat(ConstantApi.WHAT_INSERTSSUGGESTIONFORAPP);
        addLogUpLoadInfo.setUrlPath(ApiService.insertsSuggestionForAppUrl);
        addLogUpLoadInfo.setRequestMethod(ConstantSign.REQUEST_METHOD_POST);
        addLogUpLoadInfo.setToastToUser(true);//展示给用户的,这种成功是自由弹窗提示，或者自定义提示
        addLogUpLoadInfo.setHashMapParameter(hashMapParameter);

        MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()//
                .setType(MultipartBody.FORM);//
        multipartBodyBuilder.addFormDataPart(Parameterkey.suggestionId, extra_suggestionId);//该条投诉建议的id内容
        multipartBodyBuilder.addFormDataPart(Parameterkey.isExtension, String.valueOf(0));//是否延期操作：0，否；1，是
        multipartBodyBuilder.addFormDataPart(Parameterkey.solveContent, complaintFeedBackContentInside);//填充回访内容

        for (String path : addLogList) {//图片的路径
            File file = new File(path);
            //RequestBody requestBodyImages = RequestBody.create(file,MediaType.parse("multipart/form-data"));
            //RequestBody requestBodyImages = RequestBody.create(file, MediaType.parse(ApiService.MEDIATYPE_IMAGE_JPG));
            multipartBodyBuilder.addFormDataPart(Parameterkey.fileList, file.getName(), //
                    RequestBody.create(file, MediaType.parse(ApiService.MEDIATYPE_IMAGE_JPG)));//
        }

        //List<MultipartBody.Part> parts = multipartBodybuilder.build().parts();

        NetworkManager.getInstance().initRetrofitRxJava()
                .create(ApiService.class)
                .insertsSuggestionForApp(multipartBodyBuilder.build())
                .compose(ComplainFeedBackOrHandlerDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))
                .compose(new ResponseTransformer<>(addLogUpLoadInfo, new ApiRequestSubListener<Integer>() {
                    @Override
                    public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
                        super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);

                        CommUtils.checkMaterialDialog(materialDialog);

                    }
                })).doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Throwable {

                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "insertsSuggestionForApp-doOnSubscribe--doOnSubscribe--doOnSubscribe--doOnSubscribe");

                        method_create_materialDialog(mActivityInstance, ConstantSign.TIPS_SUBMIT);

                    }
                }).subscribe(new Consumer<Integer>() {
                    @Override
                    public void accept(Integer stringValue) throws Throwable {

                        CommUtils.checkMaterialDialog(materialDialog);

                        EventBus.getDefault().post(new EventBusComplaintFeedBack(ConstantApi.EVENTBUS_COMPLAINTFEEDBACK_SUBMIT_SUCCESS));

                        //TipDialog.show(StringUtils.getString(R.string.add_submit_success), WaitDialog.TYPE.SUCCESS);
                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "执行到---转换数据之后的操作--integer=>" + stringValue);

                        //是主线程
//                        main, com.ygxsk.carhome.ui.complain.ComplainFeedBackOrHandlerDetailActivity$5.accept(ComplainFeedBackOrHandlerDetailActivity.java:742)
//                        itchen-->执行到---转换数据之后的操作--integer=>1

                        //直接跳转到了报修详情界面
                        //这里应该是直接再次 刷新该界面了
                        //按说这个是异步的，不会对下边的流程有变动
                        gainDatas();

                        //判断如果是从【未处理】过来的，那末如果发生了提交，是要同时列表刷新的。
                        //直接通知
//                            if (extra_complaintfeedback_suggestion_status_inlist == ConstantApi.VALUE_COMPLAINTFEEDBACK_SUGGESTION_STATUS_NO_HANDLER) {
//
//                                //等待一段时间，不然两个接口同时，刷新请求频繁。
//                                //延迟N秒执行，因为有可能有权限弹窗。
//                                mCompositeDisposable.add(Observable.timer(600, TimeUnit.MILLISECONDS)//
//                                        .subscribeOn(AndroidSchedulers.mainThread())//
//                                        .observeOn(AndroidSchedulers.mainThread())//
//                                        .compose(ComplainFeedBackOrHandlerDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
//                                        .subscribe(new Consumer<Long>() {
//                                            @Override
//                                            public void accept(Long aLong) throws Exception {
//                                                EventBus.getDefault().post(new EventBusComplaintFeedBack(ConstantApi.EVENTBUS_COMPLAINTFEEDBACK_SUBMIT_SUCCESS));
//                                            }
//                                        }));
//                            }

                        //------------------------------------------------------------------------
                        //methodResult(singleObjectTools.getData());

                        if (editComplaintFeedSubmitContent != null) {
                            editComplaintFeedSubmitContent.setText("");
                        }

                        //2021年10月13日 图片回收的内容 暂时先不做。
                        //删除本地的图片内容
                        methodDeleteImageFileInUpLoadList();

                        //因为有相册选择，那末初始图片不删。
                        //那么 初始 图片也必然此刻删掉  2022-11-19 18:05:51 有相册选择 不能删，其实可以做拷贝，我暂时没有实现；
                        //methodDeleteImageFileInImagesCameraGeneratedOrTinySet();

                        //------------------------------------------------------------------------
//                        if (extra_complaintfeedback_suggestion_status_inlist == ConstantApi.VALUE_COMPLAINTFEEDBACK_SUGGESTION_STATUS_NO_HANDLER) {

//                            LogUtils.d(ConstantApi.LOGCAT_NOMAL + "即将执行--延迟600毫秒-投诉工单未处理的逻辑-刷新上一层的 【投诉未处理列表】");
                        //main, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$7.apply(ComplainFeedBackOrHandlerDetailActivity.java:850)
                        //itchen->即将执行--投诉工单未处理的逻辑-VALUE_COMPLAINTFEEDBACK_SUGGESTION_STATUS_NO_HANDLER
                        //main, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$7.apply(ComplainFeedBackOrHandlerDetailActivity.java:797)
                        //itchen->执行到---转换数据之后的操作--integer=>2
//                            CommUtils.checkMaterialDialog(materialDialog);

//                        LogUtils.d(ConstantApi.LOGCAT_NOMAL + "执行到-提交 投诉处理的--延迟600毫秒的操作");
                        //RxComputationThreadPool-7, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$5.accept(ComplainFeedBackOrHandlerDetailActivity.java:869)
                        //itchen->执行到-提交 投诉处理的--延迟600毫秒的操作

//                            EventBus.getDefault().post(new EventBusComplaintFeedBack(ConstantApi.EVENTBUS_COMPLAINTFEEDBACK_SUBMIT_SUCCESS));


//                        }


                        //将滚动布局自动滚动到顶部。
                        Delivery.getInstance().post(new Runnable() {

                            @Override
                            public void run() {

                                if (nested_Scroll_ViewInSuggestions != null) {
                                    //第一种方式
                                    //nested_Scroll_ViewInSuggestions.scrollTo(0,0);
                                    //第二种方式
                                    nested_Scroll_ViewInSuggestions.fullScroll(View.FOCUS_UP);
                                }

                            }
                        });


                    }
                }, new ErrorConsumer() {

                    @Override
                    protected void error(ApiException apiException) {
                        function_apiException(apiException);
                    }
                });
    }

//    /**
//     * 添加内容 提交回访内容
//     */
//    private void methodUploadComplaintFeedBackInfo(ArrayList<ImageBean> _uploadImageListPass) {
//
//        String complaintFeedBackContentInside = editComplaintFeedSubmitContent.getText().toString().trim();
//
//        //做日志上传的内容
//        ArrayList<String> addLogList = new ArrayList<>();
//
//        //直接调用接口，因为图片的信息不是必传.
//        //List<Binary> binaries = new ArrayList<>();
//
//        for (ImageBean imageBean : _uploadImageListPass) {
//
//            String imagePath = imageBean.getImageShowPickerUrl();
//            //LogUtils.d("itchen---imagePathUpLoad==" + imagePath);
//
//            if (!TextUtils.isEmpty(imagePath)) {
//
//                //FileBinary fileBinary = new FileBinary(new File(imagePath));
//                //fileBinary.setUploadListener(WHAT_UPLOAD_SINGLE, null);
//                //binaries.add(fileBinary);
//
//                addLogList.add(imagePath);
//
//            } else {
////                LogUtils.d("itchen---->添加报修的图片地址 imagePath 是空的");
//            }
//
//        }
//
////        {
////                "suggestionId": 1736, //投诉建议id
////                "fileList": [], //图片文件集合
////                "isExtension": 1, //是否延期
////                "solveContent": "", //处理内容
////                "extensionApproveCusId": 1, //审批延期人的id
////                "extensionCountent": "延期原因" //延期原因
////        }
//
//        HashMap<String, Object> hashMapParameter = new HashMap<>();
//        hashMapParameter.put(Parameterkey.suggestionId, extra_suggestionId);//投诉建议id
//        hashMapParameter.put(Parameterkey.isExtension, 0);//1是否延期
//        hashMapParameter.put(Parameterkey.solveContent, complaintFeedBackContentInside);//处理内容
//        hashMapParameter.put(Parameterkey.fileList, addLogList);//图片文件集合
//
//        AddLogUpLoadInfo addLogUpLoadInfo = new AddLogUpLoadInfo();
//        addLogUpLoadInfo.setActivity(mActivityInstance);
//        addLogUpLoadInfo.setWhat(ConstantApi.WHAT_INSERTSSUGGESTIONFORAPP);
//        addLogUpLoadInfo.setUrlPath(ApiService.insertsSuggestionForAppUrl);
//        addLogUpLoadInfo.setRequestMethod(ConstantSign.REQUEST_METHOD_POST);
//        addLogUpLoadInfo.setToastToUser(false);//展示给用户的,这种成功是自由弹窗提示，或者自定义提示
//        addLogUpLoadInfo.setHashMapParameter(hashMapParameter);
//
//        MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()//
//                .setType(MultipartBody.FORM);//
//        multipartBodyBuilder.addFormDataPart(Parameterkey.suggestionId, extra_suggestionId);//该条投诉建议的id内容
//        multipartBodyBuilder.addFormDataPart(Parameterkey.isExtension, String.valueOf(0));//是否延期操作：0，否；1，是
//        multipartBodyBuilder.addFormDataPart(Parameterkey.solveContent, complaintFeedBackContentInside);//填充回访内容
//
//        for (String path : addLogList) {//图片的路径
//            File file = new File(path);
//            //RequestBody requestBodyImages = RequestBody.create(file,MediaType.parse("multipart/form-data"));
//            //RequestBody requestBodyImages = RequestBody.create(file, MediaType.parse(ApiService.MEDIATYPE_IMAGE_JPG));
//            multipartBodyBuilder.addFormDataPart(Parameterkey.fileList, file.getName(), //
//                    RequestBody.create(file, MediaType.parse(ApiService.MEDIATYPE_IMAGE_JPG)));//
//        }
//
//        //List<MultipartBody.Part> parts = multipartBodybuilder.build().parts();
//
//        //接口的上传信息
//        //这里处理上传的内容
//        NetworkManager.getInstance().initRetrofitRxJava()
//                .create(ApiService.class)
//                .insertsSuggestionForApp(multipartBodyBuilder.build())//多文件上传的情况
//                .compose(ComplainFeedBackOrHandlerDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
//                .compose(new ResponseTransformer<>(addLogUpLoadInfo, //
//                        new ApiRequestSubListener<Integer>(ConstantApi.IS_ACTIVITY_ITSELF, //
//                                ComplainFeedBackOrHandlerDetailActivity.this) {//
//                            @Override
//                            public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
//                                super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);
//                            }
//
//                            @Override
//                            public void onErrorServerNotSuccessDataResponse(int method, boolean isToastToUser, Activity _activity, String statusCode, String message) {
//                                super.onErrorServerNotSuccessDataResponse(method, isToastToUser, _activity, statusCode, message);
//
//                                //关闭弹窗内容
//                                CommUtils.checkMaterialDialog(materialDialog);
//
//                                //将滚动布局自动滚动到顶部。
//                                Delivery.getInstance().post(new Runnable() {
//
//                                    @Override
//                                    public void run() {
//
//                                        if (nested_Scroll_ViewInSuggestions != null) {
//                                            //第一种方式
//                                            //nested_Scroll_ViewInSuggestions.scrollTo(0,0);
//                                            //第二种方式
//                                            nested_Scroll_ViewInSuggestions.fullScroll(View.FOCUS_UP);
//                                        }
//
//                                    }
//                                });
//
//                            }
//                        })).doOnSubscribe(new Consumer<Disposable>() {
//                    @Override
//                    public void accept(Disposable disposable) throws Exception {
//                        //请求发出之前要弹窗提示
//                        //开始弹窗内容
////                        CommUtils.checkMaterialDialog(materialDialog);
////                        materialDialog = CommUtils.createMaterialDialog(mActivityInstance, ConstantSign.TIPS_SUBMIT);
//
//                        method_create_materialDialog(mActivityInstance, ConstantSign.TIPS_SUBMIT);
//
//                    }
//                }).subscribeOn(AndroidSchedulers.mainThread())//以上要执行主线程，因为界面处理要在主线程
//                .flatMap(new Function<Integer, ObservableSource<Integer>>() {
//                    @Override
//                    public ObservableSource<Integer> apply(Integer integerUp) throws Exception {
////
////                          {
////                                "code":"20000",
////                                "data":1,
////                                "message":"success"
////                         }
//
//                        //2022年11月8日07:34:43 走到这里按说就是到了20000成功
//                        CommUtils.checkMaterialDialog(materialDialog);
//
////                        LogUtils.d(ConstantApi.LOGCAT_NOMAL + "执行到开始转换数据~第一个flatMap-执行");
//                        //是在主线程执行
//                        //main, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$8.apply(ComplainFeedBackOrHandlerDetailActivity.java:790)
//                        //itchen->执行到开始转换数据~
//                        return Observable.just(1);
//                    }
//                }).flatMap(new Function<Integer, ObservableSource<Long>>() {
//                    @Override
//                    public ObservableSource<Long> apply(Integer integer) throws Exception {
//
////                        LogUtils.d(ConstantApi.LOGCAT_NOMAL + "执行到---转换数据之后的操作--integer=>" + integer);
//                        //main, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$7.apply(ComplainFeedBackOrHandlerDetailActivity.java:797)
//                        //itchen->执行到---转换数据之后的操作--integer=>1
//
//                        //直接跳转到了报修详情界面
//                        //这里应该是直接再次 刷新该界面了
//                        //按说这个是异步的，不会对下边的流程有变动
//                        gainDatas();
//
//                        //判断如果是从【未处理】过来的，那末如果发生了提交，是要同时列表刷新的。
//                        //直接通知
////                            if (extra_complaintfeedback_suggestion_status_inlist == ConstantApi.VALUE_COMPLAINTFEEDBACK_SUGGESTION_STATUS_NO_HANDLER) {
////
////                                //等待一段时间，不然两个接口同时，刷新请求频繁。
////                                //延迟N秒执行，因为有可能有权限弹窗。
////                                mCompositeDisposable.add(Observable.timer(600, TimeUnit.MILLISECONDS)//
////                                        .subscribeOn(AndroidSchedulers.mainThread())//
////                                        .observeOn(AndroidSchedulers.mainThread())//
////                                        .compose(ComplainFeedBackOrHandlerDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
////                                        .subscribe(new Consumer<Long>() {
////                                            @Override
////                                            public void accept(Long aLong) throws Exception {
////                                                EventBus.getDefault().post(new EventBusComplaintFeedBack(ConstantApi.EVENTBUS_COMPLAINTFEEDBACK_SUBMIT_SUCCESS));
////                                            }
////                                        }));
////
////
////                            }
//
//                        //------------------------------------------------------------------------
//                        //methodResult(singleObjectTools.getData());
//
//                        if (editComplaintFeedSubmitContent != null) {
//                            editComplaintFeedSubmitContent.setText("");
//                        }
//
//                        //2021年10月13日 图片回收的内容 暂时先不做。
//                        //删除本地的图片内容
//                        methodDeleteImageFileInUpLoadList();
//
//                        //因为有相册选择，那末初始图片不删。
//                        //那么 初始 图片也必然此刻删掉  2022-11-19 18:05:51 有相册选择 不能删，其实可以做拷贝，我暂时没有实现；
//                        //methodDeleteImageFileInImagesCameraGeneratedOrTinySet();
//
//                        //------------------------------------------------------------------------
//                        if (extra_complaintfeedback_suggestion_status_inlist == ConstantApi.VALUE_COMPLAINTFEEDBACK_SUGGESTION_STATUS_NO_HANDLER) {
//
//                            LogUtils.d(ConstantSign.LOGCAT_NOMAL + "即将执行--延迟600毫秒-投诉工单未处理的逻辑-刷新上一层的 【投诉未处理列表】");
//                            //main, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$7.apply(ComplainFeedBackOrHandlerDetailActivity.java:850)
//                            //itchen->即将执行--投诉工单未处理的逻辑-VALUE_COMPLAINTFEEDBACK_SUGGESTION_STATUS_NO_HANDLER
//                            //main, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$7.apply(ComplainFeedBackOrHandlerDetailActivity.java:797)
//                            //itchen->执行到---转换数据之后的操作--integer=>2
//
//                            return Observable.timer(600, TimeUnit.MILLISECONDS);
//
//                        } else {
//                            return Observable.error(new ApiException(ConstantSign.RESPONSE_39527, "发生异常~", addLogUpLoadInfo,
//                                    new ApiRequestSubListener<Integer>(ConstantApi.IS_ACTIVITY_ITSELF, ComplainFeedBackOrHandlerDetailActivity.this) {
//                                        @Override
//                                        public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
//                                            super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);
//                                            //如果处理数据未能成功，那么首先是需要关闭弹窗的
//                                            CommUtils.checkMaterialDialog(materialDialog);
//                                        }
//                                    }));
//                        }
//
//                    }
//                }).subscribe(new Consumer<Long>() {
//                    @Override
//                    public void accept(Long longInside) throws Exception {
//
//                        CommUtils.checkMaterialDialog(materialDialog);
//
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL + "执行到-提交 投诉处理的--延迟600毫秒的操作");
//
//                        //RxComputationThreadPool-7, com.dgj.propertysmart.ui.complaint.ComplainFeedBackOrHandlerDetailActivity$5.accept(ComplainFeedBackOrHandlerDetailActivity.java:869)
//                        //itchen->执行到-提交 投诉处理的--延迟600毫秒的操作
//
//                        EventBus.getDefault().post(new EventBusComplaintFeedBack(ConstantApi.EVENTBUS_COMPLAINTFEEDBACK_SUBMIT_SUCCESS));
//
//                    }
//                }, new ErrorConsumer() {
//                    @Override
//                    protected void error(ApiException e) {
//
//                        //LogUtils.d(ConstantApi.LOGCAT_NOMAL + "执行到 ErrorConsumer--error的逻辑");
//
//                        CommUtils.checkMaterialDialog(materialDialog);
//
//                        function_apiException(e);
//
//                    }
//                });
//    }

    @Override
    protected void gainDatas() {

        if (NetworkUtils.isConnected()) {

            getServerDatas(extra_suggestionId);

        } else {
            netWorkError();
        }

    }

    /**
     * 执行接口的部分
     */
    private void getServerDatas(String _suggestionIdPass) {

        HashMap<String, Object> hashMap = new HashMap<>();
        hashMap.put(ConstantSign.ADDLOG_KEY, ConstantSign.ADDLOG_GETNULL);

        AddLogUpLoadInfo addLogUpLoadInfo = new AddLogUpLoadInfo();
        addLogUpLoadInfo.setActivity(mActivityInstance);
        addLogUpLoadInfo.setWhat(ConstantApi.WHAT_GETCUSTOMERSUGGESTIONDETAIL);
        addLogUpLoadInfo.setUrlPath(ApiService.getSuggestionDetailByCustomerIdUrl);
        addLogUpLoadInfo.setRequestMethod(ConstantSign.REQUEST_METHOD_POST);
        addLogUpLoadInfo.setToastToUser(true);//不需要展示给用户的
        addLogUpLoadInfo.setHashMapParameter(hashMap);

        //做界面展示给用户的
        NetworkManager.getInstance().initRetrofitRxJava()
                .create(ApiService.class)
                .getSuggestionDetailByCustomerId(_suggestionIdPass)//get接口
                .compose(ComplainFeedBackOrHandlerDetailActivity.this.bindUntilEvent(ActivityEvent.DESTROY))//
                .compose(new ResponseTransformer<>(addLogUpLoadInfo, new ApiRequestSubListener<SuggestionsDetailBean>(ConstantApi.IS_ACTIVITY_ITSELF, ComplainFeedBackOrHandlerDetailActivity.this) {

                    @Override
                    public void handlerSomeThingNotSuccessDataForItSelf(int what_method, String serverCode, String serverMessage) {
                        super.handlerSomeThingNotSuccessDataForItSelf(what_method, serverCode, serverMessage);
                    }

                    @Override
                    public void onErrorServerNotSuccessDataResponse(int method, boolean isToastToUser, Activity _activity, String statusCode, String message) {
                        super.onErrorServerNotSuccessDataResponse(method, isToastToUser, _activity, statusCode, message);

                        //如果有问题给提示也行

                    }
                })).doOnSubscribe(new Consumer<Disposable>() {
                    @Override
                    public void accept(Disposable disposable) throws Throwable {
                        loadingGone();
                    }
                }).subscribeOn(AndroidSchedulers.mainThread())//
                .subscribe(new Consumer<SuggestionsDetailBean>() {

                    @Override
                    public void accept(SuggestionsDetailBean suggestionsDetailBean) throws Exception {

                        methodLoadPage(suggestionsDetailBean);

                    }
                }, new ErrorConsumer() {
                    @Override
                    protected void error(ApiException e) {

                        function_apiException(e);

                    }
                });
    }

    /**
     * 获取数据成功的接口内容
     */
    private void methodLoadPage(SuggestionsDetailBean suggestionsDetailBean) {

        if (suggestionsDetailBean != null) {

            //-------------------------------------------------------------------------------
            //2021-10-13 同时这里也更新携带过来的id的内容
            extra_suggestionId = suggestionsDetailBean.getSuggestionId();

            //投诉建议的类型
            String categoryName = suggestionsDetailBean.getCategoryName();

            //投诉建议的内容简介
            //String content = suggestionsDetailBean.getContent();
            String content = suggestionsDetailBean.getContent();
            //String content = "这个是测试测试测试测试测试多个测试内容解决内容多个内容多个内容解决测试解决多个内容解决测试多个内容解决测试多个内容解决测试测试";

            //物业是否已经回复过:这个字段废弃了，2021年10月13日13:51:42之后，使用getSuggestionState来判断
            //int isSolved = suggestionsDetailBean.getSuggestionState();
            //这里重新更正一次extra_complaintfeedback_suggestion_state 也是可以的。
            extra_complaintfeedback_suggestion_state = suggestionsDetailBean.getSuggestionState();

            //投诉建议的状态内容
            String isSolvedInfo = suggestionsDetailBean.getStatusName();

            //投诉房间编号: 这个不需要。
            //String houseNo = suggestionsDetailBean.getHouseNo();

            //投诉建议的提交时间
            String createTime = suggestionsDetailBean.getCreateTime();


            //手机号码 用户的投诉人的
            String phone = suggestionsDetailBean.getPhone();

            //-------------------------------------------------------------------------------
            //2021年11月10日10:35:43 新增的 3个内容+一个逻辑
            //小区名称
            String suggestionCommunity = suggestionsDetailBean.getCommunityName();

            //用户姓名，也是业主姓名
            String houseNumber = suggestionsDetailBean.getHouseNo();

            // TODO: 2023-08-11 20:03 接口需要给到员工的nicname
            //投诉建议的用户姓名 2021年10月13日 改为使用昵称
            String nickNameIsEmployeeOrOwner = suggestionsDetailBean.getNickName();

            //房屋编号

            //-------------------------------------------------------------------------------
            //提交信息 的包裹内容 建议类别   上边是简写，下边是全部展示的。
            //投诉建议的类型
            //String categoryName = suggestionsDetailBean.getCategoryName();
            //投诉建议的内容简介
            //String content = suggestionsDetailBean.getContent();

            //物业回复的时间
            //String updateTime = suggestionsDetailBean.getUpdateTime();

            //物业回复的文本内容
            //String solveContent = suggestionsDetailBean.getSolveContent();


            //提交时候的图片内容
            ArrayList<ComplaintImageBean> complaintImageBeanArrayList = suggestionsDetailBean.getSuggestionImgList();

            //-------------------------------------------------------------------------------

            //=============================================================================================
            Delivery.getInstance().post(new Runnable() {

                @Override
                public void run() {

                    //顶部类型
                    CommUtils.setText(textViewSuggestionCategoryDetail, categoryName);
                    //顶部状态
                    CommUtils.setText(textViewSuggestionsState, isSolvedInfo);
                    //投诉建议的内容
                    CommUtils.setText(textViewSuggestionContentIntroduction, content);

                    //中间 提交人的房间号:这个字段废弃
                    //CommUtils.setText(textViewSuggestionsRoomCode, houseNo);
                    //小区名称：
                    CommUtils.setText(textviewSuggestionCommunity, suggestionCommunity);

                    //中间 提交人的 提交时间
                    CommUtils.setText(textViewSuggestionTime, createTime);

                    //-----------------------------------------------------------------------------

                    //这个有逻辑：2021年11月10日10:57:23
                    // 如果房间编号是空的，那就是 员工自己的报修，要展示员工账号，
                    // 如果房间编号不是空，那就是 业主自己的投诉建议（也可能是 员工代替业主投诉建议）
                    // 大约   3种情况【纯粹业主单独提交】，【纯粹员工单独提交】，【员工代替业主提交】？
                    //中间提交人的姓名:目前暂时是员工账号.
//                    if (!TextUtils.isEmpty(houseNumber)) {
//
//                        //展示业主自己的姓名，不展示员工姓名
//                        CommUtils.setViewGone(layoutContentSuggestionEmployeeName);
//                        CommUtils.setViewVisible(layoutContentSuggestionOwnerName);
//                        CommUtils.setViewVisible(laycontentSuggestionHouseNumber);
//
//                        //用户姓名
//                        CommUtils.setText(textviewSuggestionOwnerName, nickNameIsEmployeeOrOwner);
//                        //房屋编号
//                        CommUtils.setText(textviewSuggestionHouseNumber, houseNumber);
//
//                        //既然不可见，那么就不展示名字，也没有意义。
//                        //CommUtils.setText(textviewSuggestionEmployeeName, nickNameIsEmployee);
//
//                    } else {
//
//                        //展示员工姓名，不展示业主姓名
//                        CommUtils.setViewVisible(layoutContentSuggestionEmployeeName);
//                        CommUtils.setViewGone(layoutContentSuggestionOwnerName);
//                        CommUtils.setViewGone(laycontentSuggestionHouseNumber);
//
//                        CommUtils.setText(textviewSuggestionEmployeeName, nickNameIsEmployeeOrOwner);
//
//                    }

                    //展示员工姓名，不展示业主姓名
                    CommUtils.setViewVisible(layoutContentSuggestionEmployeeName);
                    CommUtils.setViewGone(layoutContentSuggestionOwnerName);
                    CommUtils.setViewGone(laycontentSuggestionHouseNumber);

                    CommUtils.setText(textviewSuggestionEmployeeName, nickNameIsEmployeeOrOwner);

                    //-----------------------------------------------------------------------------
                    //-----------------------------------------------------------------------------
                    //-----------------------------------------------------------------------------
                    //-----------------------------------------------------------------------------

                    //中间提交人的电话号码
//                    CommUtils.setText(textViewSuggestPhone, phone);
                    CommUtils.setText(textViewSuggestPhone, StringCodeUtils.mobileEncrypt(phone));

                    //并且添加上拨打电话的内容
                    methodPhone(phone);

                    //-------------------------------------------------------------

                    //提交的具体信息 提交类型
                    CommUtils.setText(textViewSuggestionCategoryBottom, categoryName);
                    //提交的具体信息 提交文本内容
                    CommUtils.setText(textViewSuggestionContentBottom, content);

                    //填充投诉内容的九宫格。
                    if (complaintImageBeanArrayList != null && (!complaintImageBeanArrayList.isEmpty())) {

                        CommUtils.setViewVisible(layoutComplaintImages);

                        //需要对图片的内容做提取
                        ArrayList<String> complaintImageArrayListString = new ArrayList<>();

                        for (ComplaintImageBean complaintImageBeanItem : complaintImageBeanArrayList) {
                            complaintImageArrayListString.add(complaintImageBeanItem.getImgUrl());
                        }

                        //九宫格展示
                        initGridView(complaintImageArrayListString, gridViewComplaintImages);

                    } else {

                        //九宫格隐藏2018/11/27 以前代码
                        //CommUtils.setViewInvisible(layoutbaoxiupics);
                        CommUtils.setViewGone(layoutComplaintImages);

                    }

                }
            });

            //=============================================================================================
            //=============================================================================================
            //=============================================================================================
            //=============================================================================================
            //=============================================================================================
            //图片信息 --可能是空的，空的就是没有图片，最多三张图片
            //ArrayList<ComplaintImageBean> suggestionFinishImgList = suggestionsDetailBean.getSuggestionFinishImgList();

            //标识物业是否 已经回复内容，待处理的。 1是待分配 2是 待处理。
            if (extra_complaintfeedback_suggestion_state == 1 //待分配
                    || extra_complaintfeedback_suggestion_state == 2) {//待处理--尚未解决

                Delivery.getInstance().post(new Runnable() {
                    @Override
                    public void run() {

                        //首先隐藏掉 物业回复的内容
                        //物业处理内容 隐藏掉，不处理
                        CommUtils.setViewGone(layoutContentComplaintHandlerComplate);

                        //添加投诉回访的内容+照片的布局依然展示着
                        CommUtils.setViewVisible(linearLayoutComplaintHandlerAll);
                        //展示底部的提交 按钮布局
                        CommUtils.setViewVisible(layoutButtonInComplaintHandler);

                        //物业回访的布局 必须是隐藏的
                        CommUtils.setViewGone(footerComplaintFeedBackViewContent);

                    }
                });

            } else if (extra_complaintfeedback_suggestion_state == 4) {//已处理/待回访

                //如果是从 【待回访】待回访进来的

                //如果状态是4，那就是  2，待处理；    4，已处理/待回访；    6已回访
                //已处理 或者 待回访
                //物业处理内容 隐藏掉，不处理
                //底部已处理的图片
                Delivery.getInstance().post(new Runnable() {

                    @Override
                    public void run() {

                        //=======================================================================
                        //隐藏提交回访的文本内容+提交照片的布局 包裹
                        CommUtils.setViewGone(linearLayoutComplaintHandlerAll);

                        //隐藏底部的提交 按钮布局
                        CommUtils.setViewGone(layoutButtonInComplaintHandler);

                        //物业处理的内容更是要展示出来的
                        CommUtils.setViewVisible(layoutContentComplaintHandlerComplate);

                        //物业回访的 大布局 必须是隐藏的
                        CommUtils.setViewGone(footerComplaintFeedBackViewContent);

                        //===================================================================================================
                        //物业处理 的对象，只有在物业处理时候使用。
                        SuggestionHandleVo suggestionHandleVo = suggestionsDetailBean.getSuggestionHandleVo();

                        //物业回复的时间内容
                        if (suggestionHandleVo != null) {

                            CommUtils.setText(textViewSuggestionPerson, suggestionHandleVo.getSolveCustomerName());
                            CommUtils.setText(textViewSuggestionCallbackTime, suggestionHandleVo.getHandleTime());//受理处理时间
                            CommUtils.setText(textViewSuggestionCallbackFinishtime, suggestionHandleVo.getFinishTime());//完成时间
                            CommUtils.setText(textViewSuggestionCallbackContent, suggestionHandleVo.getSolveContent());

                        }

                        //图片是单独的信息，单独处理
                        methodHandlerComplaintHandlerOrFeedBackImages(suggestionsDetailBean);
                        //===================================================================================================

                    }
                });


            } else if (extra_complaintfeedback_suggestion_state == 6) {//已回访的


                Delivery.getInstance().post(new Runnable() {

                    @Override
                    public void run() {

                        //=======================================================================
                        //隐藏提交回访的文本内容+提交照片的布局 包裹
                        CommUtils.setViewGone(linearLayoutComplaintHandlerAll);

                        //隐藏底部的提交 按钮布局
                        CommUtils.setViewGone(layoutButtonInComplaintHandler);

                        //物业处理的内容更是要展示出来的
                        CommUtils.setViewVisible(layoutContentComplaintHandlerComplate);

                        //已回访的布局 必须是显示的
                        CommUtils.setViewVisible(footerComplaintFeedBackViewContent);

                        //===============================================================================================

                        SuggestionHandleVo suggestionHandleVo = suggestionsDetailBean.getSuggestionHandleVo();

                        //物业回复的时间内容
                        if (suggestionHandleVo != null) {
                            CommUtils.setText(textViewSuggestionPerson, suggestionHandleVo.getSolveCustomerName());
                            CommUtils.setText(textViewSuggestionCallbackTime, suggestionHandleVo.getHandleTime());//受理 处理时间
                            CommUtils.setText(textViewSuggestionCallbackFinishtime, suggestionHandleVo.getFinishTime());//处理完成的时间
                            CommUtils.setText(textViewSuggestionCallbackContent, suggestionHandleVo.getSolveContent());
                        }

                        //物业回访的内容 使用回访的 实体内容
                        SuggestionEvaluateVo suggestionEvaluateVo = suggestionsDetailBean.getSuggestionEvaluateVo();

                        //物业回访的时间内容
                        if (suggestionEvaluateVo != null) {

                            CommUtils.setText(textViewComplaintFeedBackTextContent, suggestionEvaluateVo.getEvaluateContent());
                            //判断是否已回访
                            methodsatisfactionListForHF(suggestionEvaluateVo.getSatisfactionListForHF());
                        }

                        //这里处理图片是通用的
                        methodHandlerComplaintHandlerOrFeedBackImages(suggestionsDetailBean);

                        //=======================================================================

                        //=======================================================================

                    }
                });

                //======================================================================================================================

            } else {

                //其他情况

            }

            //======================================================================================

        }

    }

    @Override
    protected void methodBack() {

        //软键盘关闭
        if (KeyboardUtils.isSoftInputVisible(mActivityInstance)) {
            KeyboardUtils.hideSoftInput(mActivityInstance);
        }

        if (ActivityUtils.isActivityAlive(this)) {
            ActivityUtils.finishActivity(this);
        }

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {

        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {

            checkEdit();

            return true;

        }

        return super.onKeyDown(keyCode, event);
    }

    @Override
    public void processExtraData() {

        //携带其他的参数内容
        Bundle bundle = this.getIntent().getExtras();

        //use the data received here
        if (bundle != null) {

            //获取从哪里过来的，如果是从【投诉统计】的查看【未回访】的界面过来的，那末，界面上的数据只能查看，而不能操作。
            jumpFromFlag = bundle.getInt(ExtraKey.EXTRA_JUMPFROM_WHERE);

            //推送消息携带过来的参数内容
            //这里携带过来的是一个实体内容
            extra_suggestionId = bundle.getString(ExtraKey.EXTRA_COMPLAINTFEEDBACK_SUGGESTIONID);

            //携带投诉建议的状态，为了处理界面。
            extra_complaintfeedback_suggestion_state = bundle.getInt(ExtraKey.EXTRA_COMPLAINTFEEDBACK_SUGGESTION_STATE);

            //2021-10-14 19:17:09 携带是从哪个状态跳转过来的，目的为了：提交完毕后 通知列表刷新
//            LogUtils.d("itchen----携带过来的 extra_suggestionId==>" + extra_suggestionId);

            extra_complaintfeedback_suggestion_status_inlist = bundle.getInt(ExtraKey.EXTRA_COMPLAINTFEEDBACK_SUGGESTION_STATUS_INLIST);

            //取出这个数据 是为了 知道 物业有没有回复，好做底部界面的隐藏
            //extra_suggestionsBean = bundle.getParcelable(ConstantApi.EXTRA_SUGGESTIONS_BEAN);

        }

    }


    /**
     * @date 2018/3/30 0030
     * @auther itchenqi
     * @description 填充九宫格列表内容。
     */
    private void initGridView(final ArrayList<String> mDatasImageList, NoScrollGridView _gridviewpicswork) {

        ImageInDetailAdapter imageInDetailAdapter = new ImageInDetailAdapter(mActivityInstance, mDatasImageList);

        //填充适配器内容
        if (_gridviewpicswork != null) {

            _gridviewpicswork.setAdapter(imageInDetailAdapter);

            imageInDetailAdapter.notifyDataSetChanged();


            //点击查看大图的设计。。
            _gridviewpicswork.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                    //临时加载
                    /*ArrayList<String> arrayList = new ArrayList<>();
                     for (int index = 0; index < mDatas.size(); index++) {
                     arrayList.add(mDatas.get(position).getImageUrlBig());
                    }*/

                    //单独的图片内容。
                    //2018年03月17日重新修改
                    Album.gallery(mActivityInstance)//
                            //.requestCode(2)//
                            .checkedList(mDatasImageList)//
                            .currentPosition(position)//记录位置？
                            //.navigationAlpha(80)//
                            .checkable(false)//是否出现选择对勾内容//
                            .widget(//
                                    Widget.newLightBuilder(mActivityInstance)///
                                            .statusBarColor(Color.WHITE)
                                            .title("查看大图")//
                                            .build()//
                            )
                            .onResult(new Action<ArrayList<String>>() {
                                @Override
                                public void onAction(@NonNull ArrayList<String> result) {
                                    //  If it is optional, here you can accept the results of user selection.
                                }//
                            })
                            .start();//

                }
            });
        }

    }

    private void methodShowSelectDialog(int _remainNum) {

        CommUtils.checkDialog(mAlertView);

        //弹窗从相机或者相册选择
        mAlertView = new AlertView(getResources().getString(R.string.smartgo_choose_payment),//
                null,//
                getResources().getString(R.string.cancel),//取消文字
                null,//
                new String[]{getResources().getString(R.string.upload_idcard_takephoto),//拍照
                        getResources().getString(R.string.upload_idcard_pickphoto)},//相册选择
                mActivityInstance,//
                AlertView.Style.ActionSheet,//
                new OnItemClickListener() {
                    @Override
                    public void onItemClick(Object o, int position) {

                        if (position == 0) {//相机

                            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {

                                if (picChooseCallbackInComplaintFeedBack != null) {
                                    picChooseCallbackInComplaintFeedBack.clickCamera(0);
                                }

                            } else {

                                if (picChooseCallbackInComplaintFeedBack != null) {
                                    picChooseCallbackInComplaintFeedBack.clickCameraAndroid13(0);
                                }

                            }

                        } else if (position == 1) {//相册选择

                            if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {

                                if (picChooseCallbackInComplaintFeedBack != null) {
                                    picChooseCallbackInComplaintFeedBack.clickAlbum(1, _remainNum);//
                                }

                            } else {

                                if (picChooseCallbackInComplaintFeedBack != null) {
                                    picChooseCallbackInComplaintFeedBack.clickAlbumAndroid13(1, _remainNum);//
                                }

                            }

                        }

                    }
                });

        mAlertView.setCancelable(true)//
                .show();//

    }

    private void methodRxImagePickerViewListener() {

        //图片选择器内容
        it_picker_view_complaintfeedback.setImageLoaderInterface(new Loader());
        it_picker_view_complaintfeedback.setShowAnim(true);
        //自定义添加图片的按钮图片。
        it_picker_view_complaintfeedback.setmAddLabel(R.drawable.addpublish);


        it_picker_view_complaintfeedback.setPickerListener(new ImageShowPickerListener() {

            @Override
            public void addOnClickListener(final int remainNum) {


//                LogUtils.d(ConstantSign.LOGCAT_NOMAL + "即将执行--addOnClickListener");

                //如果发现软键盘是弹出的，就要消失掉软键盘
                KeyboardUtils.hideSoftInput(mActivityInstance);

                //早期代码 仅仅是 拍照和从相册选择处理
                methodShowSelectDialog(remainNum);

            }

            @Override
            public void picOnClickListener(List<ImageShowPickerBean> list, int position, int remainNum) {

                //软键盘关闭
                KeyboardUtils.hideSoftInput(mActivityInstance);

                ArrayList<String> tempList = new ArrayList<>();

                for (ImageShowPickerBean imagepick : list) {
                    tempList.add(imagepick.getImageShowPickerUrl());
                }

                //这个是点击图片的内容。这里使用浏览图片
                Album.gallery(mActivityInstance)
                        .checkedList(tempList)
                        .checkable(false)//是否出现选择对勾内容
                        .currentPosition(position)//2019/1/12 并未发现对应位置错乱，就给代码放开了
                        .widget(//
                                Widget.newDarkBuilder(mActivityInstance)
                                        .title("图片查看")//
                                        .build()//
                        )
                        .onResult(new Action<ArrayList<String>>() {
                            @Override
                            public void onAction(@NonNull ArrayList<String> result) {
                                //  If it is optional, here you can accept the results of user selection.
                            }

                        })
                        .start();


            }

            @Override
            public void delOnClickListener(int position, int remainNum) {

                if (!uploadImageListPass.isEmpty()) {
                    uploadImageListPass.remove(position);
                }

            }

            @Override
            public void longClickListener(List<ImageShowPickerBean> list, int position, int remainNum) {
                //添加长按内容
            }
        });


        it_picker_view_complaintfeedback.show();//展示的:确定要先添加事件之后再展示？

        //------------------------------------------------------------------------------------------------------

    }

    private final PicChooseCallbackInComplaintFeedBack picChooseCallbackInComplaintFeedBack = new PicChooseCallbackInComplaintFeedBack() {

        @Override
        public void clickCamera(int position) {

            //LogUtils.d("itchen---拍照的路径-->" + PathUtils.getExternalAppFilesPath() + File.separator + TimeUtilSer.getNowPic() + ".jpg");
            //正常的拍照路径， 必须是要添加 File.separator 的，不然没有分割 ，
            //itchen---拍照的路径-->/storage/emulated/0/Android/data/com.dgj.propertysmart/files/2020-04-17-08-33-47.jpg

            if (!AndPermission.hasPermissions(mActivityInstance,//
                    Permission.CAMERA,//
                    Permission.READ_EXTERNAL_STORAGE,//
                    Permission.WRITE_EXTERNAL_STORAGE)) {

                CommUtils.checkMaterialDialog(materialDialog);

                materialDialog = CommUtils.authorityRequest(mActivityInstance, ConstantSign.MATERIALDIALOG_AUTHORITY_CONTENT_CAMERA, new AuthorityCallbackListener() {
                    @Override
                    public void doSomeThing() {

                        CommUtils.checkMaterialDialog(materialDialog);

                        //.permission(Permission.Group.CAMERA, Permission.Group.STORAGE)
                        //这里两个权限组啊分开写。
                        AndPermission.with(mActivityInstance)
                                .runtime()//
                                .permission(Permission.CAMERA,//
                                        Permission.READ_EXTERNAL_STORAGE,//
                                        Permission.WRITE_EXTERNAL_STORAGE)//
                                .rationale(new RuntimeRationale())//
                                .onGranted(new com.yanzhenjie.permission.Action<List<String>>() {
                                    @Override
                                    public void onAction(List<String> permissions) {

                                        takePhotoCamera();

                                    }
                                }).onDenied(new com.yanzhenjie.permission.Action<List<String>>() {
                                    @Override
                                    public void onAction(List<String> permissions) {

                                        //CommUtils.displayToastShort(mActivityInstance, ConstantApi.NEEDPERMISS_PHONE);

                                        ToastUtils.showShort(StringUtils.getString(R.string.image_permissions));

                                        if (AndPermission.hasAlwaysDeniedPermission(mActivityInstance, permissions)) {
                                            mSetting.showSetting(ConstantApi.PERMISSION_NORMAL, mActivityInstance, permissions);
                                        }

                                    }
                                }).start();


                    }
                });

            } else {
                takePhotoCamera();
            }

        }

        @Override
        public void clickCameraAndroid13(int position) {

            // TODO: 2024/1/24 11:32 android13使用的相机拍照，使用x
            if (!XXPermissions.isGranted(ComplainFeedBackOrHandlerDetailActivity.this, com.hjq.permissions.Permission.CAMERA)) {

                CommUtils.checkMaterialDialog(materialDialog);

                materialDialog = CommUtils.authorityRequest(ComplainFeedBackOrHandlerDetailActivity.this, ConstantSign.MATERIALDIALOG_AUTHORITY_CONTENT_CAMERA, new AuthorityCallbackListener() {
                    @Override
                    public void doSomeThing() {

                        CommUtils.checkMaterialDialog(materialDialog);

                        XXPermissions.with(ComplainFeedBackOrHandlerDetailActivity.this)
                                // 适配分区存储应该这样写
                                //.permission(Permission.Group.STORAGE)
                                // 不适配分区存储应该这样写
                                .permission(com.hjq.permissions.Permission.CAMERA)//
                                .interceptor(new PermissionInterceptor())
                                .request(new OnPermissionCallback() {

                                    @Override
                                    public void onGranted(@NonNull List<String> permissions, boolean allGranted) {

                                        if (!allGranted) {
                                            return;
                                        }

                                        Toaster.show(String.format(getString(R.string.demo_obtain_permission_success_hint),
                                                PermissionNameConvert.getPermissionString(ComplainFeedBackOrHandlerDetailActivity.this, permissions)));

                                        // TODO: 2024/1/24 11:49
                                        openMain(position);

                                    }
                                });

                    }
                });

            } else {

                openMain(position);

            }

        }

        @Override
        public void clickAlbum(int position, int _remainNum) {

            if (!AndPermission.hasPermissions(mActivityInstance,
                    Permission.READ_EXTERNAL_STORAGE,
                    Permission.WRITE_EXTERNAL_STORAGE)) {

                CommUtils.checkMaterialDialog(materialDialog);

                materialDialog = CommUtils.authorityRequest(mActivityInstance, ConstantSign.MATERIALDIALOG_AUTHORITY_CONTENT_STORAGE, new AuthorityCallbackListener() {
                    @Override
                    public void doSomeThing() {

                        CommUtils.checkMaterialDialog(materialDialog);

                        //添加访问权限内容
                        AndPermission.with(mActivityInstance)
                                .runtime()//
                                .permission(Permission.READ_EXTERNAL_STORAGE, //
                                        Permission.WRITE_EXTERNAL_STORAGE//
                                )//
                                .rationale(new RuntimeRationale())//
                                .onGranted(new com.yanzhenjie.permission.Action<List<String>>() {
                                    @Override
                                    public void onAction(List<String> permissions) {

                                        clickAlum(_remainNum);

                                    }
                                }).onDenied(new com.yanzhenjie.permission.Action<List<String>>() {
                                    @Override
                                    public void onAction(List<String> permissions) {

                                        ToastUtils.showShort(StringUtils.getString(R.string.image_permissions));

                                        if (AndPermission.hasAlwaysDeniedPermission(mActivityInstance, permissions)) {
                                            mSetting.showSetting(ConstantApi.PERMISSION_NORMAL, mActivityInstance, permissions);
                                        }

                                    }
                                }).start();

                    }
                });

            } else {
                clickAlum(_remainNum);
            }


        }

        @Override
        public void clickAlbumAndroid13(int position, int remainNum) {

            // TODO: 2024/1/24 11:32 android13使用的相机拍照，使用x
            if (!XXPermissions.isGranted(ComplainFeedBackOrHandlerDetailActivity.this, com.hjq.permissions.Permission.CAMERA)//
                    || !XXPermissions.isGranted(ComplainFeedBackOrHandlerDetailActivity.this, com.hjq.permissions.Permission.READ_MEDIA_IMAGES)) {//

                CommUtils.checkMaterialDialog(materialDialog);

                materialDialog = CommUtils.authorityRequest(ComplainFeedBackOrHandlerDetailActivity.this, ConstantSign.MATERIALDIALOG_AUTHORITY_CONTENT_CAMERA, new AuthorityCallbackListener() {
                    @Override
                    public void doSomeThing() {

                        CommUtils.checkMaterialDialog(materialDialog);

                        XXPermissions.with(ComplainFeedBackOrHandlerDetailActivity.this)
                                // 适配分区存储应该这样写
                                //.permission(Permission.Group.STORAGE)
                                // 不适配分区存储应该这样写
                                .permission(com.hjq.permissions.Permission.CAMERA)//
                                .permission(com.hjq.permissions.Permission.READ_MEDIA_IMAGES)//
                                .interceptor(new PermissionInterceptor())
                                .request(new OnPermissionCallback() {

                                    @Override
                                    public void onGranted(@NonNull List<String> permissions, boolean allGranted) {

                                        if (!allGranted) {
                                            return;
                                        }

                                        Toaster.show(String.format(getString(R.string.demo_obtain_permission_success_hint),
                                                PermissionNameConvert.getPermissionString(ComplainFeedBackOrHandlerDetailActivity.this, permissions)));

                                        // TODO: 2024/1/24 11:49相册
                                        openMain(position);

                                    }
                                });

                    }
                });

            } else {

                openMain(position);

            }

        }
    };

    //低于android13版本的拍照能力
    private void takePhotoCamera() {

        //调用相机拍照
        Album.camera(mActivityInstance)//
                .image()//
                .filePath(PathUtils.getExternalAppFilesPath() + File.separator + ConstantSign.STARTWITH_COMPLAINTFEEDBACKCHECK_FLAG + TimeUtilSer.getNowPic() + Parameterkey.jpg)
                .onResult(new Action<String>() {//
                    @Override
                    public void onAction(@NonNull String result) {//

                        //拍照路径内容
                        fillImagesLogic(result);//

                    }

                }).onCancel(new Action<String>() {
                    @Override
                    public void onAction(@NonNull String result) {

                        //LogUtils.d("itchen---->小米手机返回路径--->" + result);
                        //itchen---->小米手机返回路径--->User canceled.

                        ToastUtils.showShort(StringUtils.getString(R.string.cameracancel));

                    }

                }).start();

    }

    /**
     * 本地处理压缩。如果是编辑要不要再次处理？
     */
    private void fillImagesLogic(final String _imagePath) {

        if (!TextUtils.isEmpty(_imagePath)) {

            /*if (imagesCameraGeneratedOrTinySet != null) {
                imagesCameraGeneratedOrTinySet.add(_imagePath);
                LogUtils.d("itchen---QualityCheckSubmitActivity---fillImagesLogic---相机产生的---imagesCameraGeneratedOrTinySet--添加的图片=>" + imagesCameraGeneratedOrTinySet);
            }*/

            Tiny.getInstance().source(_imagePath).asFile().withOptions(compressOptions).compress(new FileCallback() {
                @Override
                public void callback(boolean isSuccess, String outfile, Throwable t) {

                    if (!isSuccess) {//压缩失败就上传原图即可。

                        //LogUtils.d("itchen--有压缩失败-" + t.getMessage());
                        //return;

                        //原始代码
                        //ImageBean imageBean = new ImageBean(_imagePath);

                        //2020年3月24日13:44:03 添加时间戳水印的处理
                        ImageBean imageBean = new ImageBean(TaskPicUtils.methodAddTimestampWatermark(ConstantSign.STARTWITH_COMPLAINTFEEDBACKCHECK_FLAG, _imagePath));

                        if (it_picker_view_complaintfeedback != null) {
                            it_picker_view_complaintfeedback.addData(imageBean);
                        }

                        if (uploadImageListPass != null) {
                            uploadImageListPass.add(imageBean);
                        }

                        //在这里 做照片的存储回收。
                        //CommUtils.addOriginalImageToRecyclerList(mSession, imagesCameraGeneratedOrTinySet);

                    } else {//图片压缩成功，上传压缩图


                        //原始代码
                        //ImageBean imageBean = new ImageBean(outfile);
                        if (!TextUtils.isEmpty(outfile)) {

                            //2020年3月24日13:44:56 添加时间戳水印
                            ImageBean imageBean = new ImageBean(TaskPicUtils.methodAddTimestampWatermark(ConstantSign.STARTWITH_COMPLAINTFEEDBACKCHECK_FLAG, outfile));

                            if (it_picker_view_complaintfeedback != null) {
                                it_picker_view_complaintfeedback.addData(imageBean);
                            }

                            if (uploadImageListPass != null) {
                                uploadImageListPass.add(imageBean);
                            }

                            //删除原始 产生的图片 2021-8-26 11:29:02 我屏蔽了这段代码
                            /*if (FileUtils.isFileExists(_imagePath) && FileUtils.isFile(_imagePath)) {
                                FileUtils.delete(_imagePath);
                            }*/

                            //不涉及到离线 不在这里管理
                            //CommUtils.addOriginalImageToRecyclerList(mSession, imagesCameraGeneratedOrTinySet);

                        }
                    }

                }
            });
        }
    }


    /**
     * 从相册里选择图片
     */
    public void clickAlum(int _remainNum) {

        //调用相册选择
        Album.image(mActivityInstance)
                .multipleChoice()
                //.singleChoice()//
                .camera(true)//
                .columnCount(3)//
                .selectCount(_remainNum + 1)//最多只能选择1张照片.不然导致我的相册出bug。
                //.checkedList(mAlbumFiles)//多选的时候避免重复选择
                .widget(Widget.newLightBuilder(mActivityInstance)//自定义的界面可以不要
                        .title("选择图库")//
                        .statusBarColor(Color.WHITE)//状态栏颜色。
                        .toolBarColor(Color.WHITE)//Toolbar颜色。
                        .mediaItemCheckSelector(Color.BLUE, Color.RED)//图片或者视频选择框的选择器。
                        .bucketItemCheckSelector(Color.BLUE, Color.WHITE)//切换文件夹时文件夹选择框的选择器
                        .buttonStyle(Widget.ButtonStyle.newLightBuilder(mActivityInstance)//
                                .setButtonSelector(Color.BLUE, Color.WHITE)//
                                .build()).build())//

                .onResult(new Action<ArrayList<AlbumFile>>() {
                    @Override
                    public void onAction(@NonNull ArrayList<AlbumFile> result) {
                        //2018/11/30 原始代码发现该处并没用到
                        //mAlbumFiles = result;

                        /*ArrayList<String> pathStringList = new ArrayList<>();
                        for (AlbumFile albumFile:result) {
                            pathStringList.add(albumFile.getPath());
                        }
                        takePicture(pathStringList);//图片路径内容*/

                        //==========================================================================
                        //这个列表要单独划开，因为上传的时候要整体上传的。
                        // 准备采用。图片压缩。
                        if (result != null && (!result.isEmpty())) {
                            //2018年03月14日。原始代码。
                            for (int index = 0; index < result.size(); index++) {
                                fillImagesLogic(result.get(index).getPath());
                            }
                        }

                    }
                })
                .onCancel(new Action<String>() {

                    @Override
                    public void onAction(@NonNull String result) {
//                        CommUtils.displayToastShort(mActivityInstance, "取消了");
                        ToastUtils.showShort(StringUtils.getString(R.string.cancel_str_ed));
                    }

                })
                .start();

    }

    /**
     * 检查页面的是否真的退出的提示
     */
    private void checkEdit() {

        if (KeyboardUtils.isSoftInputVisible(mActivityInstance)) {
            KeyboardUtils.hideSoftInput(mActivityInstance);
        }


        if (!TextUtils.isEmpty(editComplaintFeedSubmitContent.getText().toString())//
                || !uploadImageListPass.isEmpty()) {//

            CommUtils.checkDialog(mAlertView);

            mAlertView = new AlertView(ConstantSign.ALERT_TITLE,
                    "退出此次编辑?",
                    "取消",
                    new String[]{"退出"},
                    null,
                    mActivityInstance,
                    AlertView.Style.Alert,
                    new OnItemClickListener() {
                        @Override
                        public void onItemClick(Object o, int position) {

                            if (position != AlertView.CANCELPOSITION) {

                                methodBack();

                            }

                        }
                    });

            mAlertView.setCancelable(true).show();

        } else {

            methodBack();

        }

    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        if (editComplaintFeedSubmitContent != null) {
            if (!TextUtils.isEmpty(editComplaintFeedSubmitContent.getText().toString().trim())) {
                editComplaintFeedSubmitContent.setText("");
                //LogUtils.d("itchen---清空房间号");
            }
        }

        //清空弹窗内容
        if (mAlertView != null) {

            if (mAlertView.isShowing()) {
                mAlertView.dismiss();
                mAlertView = null;
            }

        }

        //清空提示提交弹窗
        CommUtils.checkMaterialDialog(materialDialog);

        //清空页面数据，避免仍然有携带。
        if (mSetting != null) {
            mSetting = null;
        }

        extra_complaintfeedback_suggestion_state = 0;

        extra_suggestionId = "0";

        //===============================================================================================
        if (uploadImageListPass != null && !uploadImageListPass.isEmpty()) {
            //删除本地图片
            //不涉及到离线提交，不用管 直接删除,,不受离线影响。
            methodDeleteImageFileInUpLoadList();

        }
        //===============================================================================================
        //===============================================================================================

        if (mCompositeDisposable != null) {
            mCompositeDisposable.clear();
        }

        if (mGlobalSetting != null) {
            mGlobalSetting.onDestroy();
        }

    }

    /**
     * 删除本地的图片内容
     */
    private void methodDeleteImageFileInUpLoadList() {

        //如果本地有离线的巡检数据，那么就不执行删除
        //这里不涉及到离线任务，可以直接删除
        ThreadUtils.executeBySingle(new ThreadUtils.SimpleTask<Void>() {

            @Override
            public Void doInBackground() throws Throwable {

                //删除所有的工单池的信息
                //CommUtils.methodDeleteImageFile(uploadImageListPass, ConstantApi.STARTWITH_REPAIR_FLAG);

                //仅仅删除本地上传列表之中的数据
                TaskPicUtils.methodDeleteImageFileInUpLoadList(uploadImageListPass, ConstantSign.STARTWITH_COMPLAINTFEEDBACKCHECK_FLAG);

                return null;
            }

            @Override
            public void onSuccess(Void result) {

                if (uploadImageListPass != null && !uploadImageListPass.isEmpty()) {
                    uploadImageListPass.clear();
                    //uploadImageListPass = null;
                }

            }
        });

    }

    /**
     * 拨打手机号码的内容
     */
    private void methodPhone(String _userPhone) {

        //联系电话
        //CommUtils.setText(textviewRoomPhonework, userPhone);

        if (!TextUtils.isEmpty(_userPhone)) {

            layoutPhoneRightInFeedBackDetail.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {

                    CommUtils.checkDialog(mAlertView);

                    //二次确认弹窗提示
                    mAlertView = new AlertView(ConstantSign.ALERTVIEW_TITLE_FOR_PHONE,//
                            _userPhone, //
                            ConstantSign.ALERTVIEW_LEFT_CANCEL,//
                            new String[]{ConstantSign.ALERTVIEW_RIGHT_COPY_INFORMATION}, //
                            null, //
                            mActivityInstance, //
                            AlertView.Style.Alert,//
                            new OnItemClickListener() {
                                @Override
                                public void onItemClick(Object o, int position) {

                                    if (position != AlertView.CANCELPOSITION) {

                                        if (!TextUtils.isEmpty(_userPhone)) {
                                            mActivityInstance.startActivity(CommUtils.callThePhoneNumAction_dial(_userPhone));
                                        } else {
                                            //CommUtils.displayToastShort(mActivityInstance, ConstantSign.ALERTVIEW_GETPHONE_INFO_FAIL);
                                            ToastUtils.showShort(StringUtils.getString(R.string.getphoneinfofail));
                                        }

//                                        if (!AndPermission.hasPermissions(mActivityInstance, Permission.CALL_PHONE)) {
//
//                                            CommUtils.authorityRequest(mActivityInstance, ConstantApi.MATERIALDIALOG_AUTHORITY_CONTENT_CALLPHONE, new AuthorityCallbackListener() {
//                                                @Override
//                                                public void doSomeThing() {
//
//                                                    //拨打电话的信息：维修人 给业主电话
//                                                    AndPermission.with(mActivityInstance)//
//                                                            .runtime()//
//                                                            .permission(Permission.CALL_PHONE)//
//                                                            .rationale(new RuntimeRationale())//
//                                                            .onGranted(new com.yanzhenjie.permission.Action<List<String>>() {
//
//                                                                @Override
//                                                                public void onAction(List<String> permissions) {
//
//                                                                    //弹窗一个二次确认。
//                                                                    //要不要添加二次拨打电话的弹窗确认？
//                                                                    //不太严谨
//                                                                    //mActivityInstance.startActivity(CommUtils.callThePhoneNum(userPhone));
//
//                                                                    if (!TextUtils.isEmpty(_userPhone)) {
//                                                                        mActivityInstance.startActivity(CommUtils.callThePhoneNum(_userPhone));
//                                                                    } else {
//                                                                        CommUtils.displayToastShort(mActivityInstance, "未获取到电话信息");
//                                                                    }
//
//                                                                }
//                                                            }).onDenied(new com.yanzhenjie.permission.Action<List<String>>() {
//                                                        @Override
//                                                        public void onAction(List<String> permissions) {
//
//                                                            CommUtils.displayToastShort(mActivityInstance, ConstantApi.NEEDPERMISS_PHONE);
//
//                                                            if (AndPermission.hasAlwaysDeniedPermission(mActivityInstance, permissions)) {
//                                                                mSetting.showSetting(ConstantApi.PERMISSION_NORMAL, mActivityInstance, permissions);
//                                                            }
//
//                                                        }
//                                                    }).start();
//
//                                                }
//                                            });
//
//                                        } else {
//
//                                            if (!TextUtils.isEmpty(_userPhone)) {
//                                                mActivityInstance.startActivity(CommUtils.callThePhoneNum(_userPhone));
//                                            } else {
//                                                CommUtils.displayToastShort(mActivityInstance, "未获取到电话信息");
//                                            }
//
//                                        }
                                    }

                                }
                            }
                    );

                    mAlertView.setCancelable(true).show();

                }
            });

        } else {
//            CommUtils.displayToastShort(mActivityInstance, "未获取到电话信息");
//            ToastUtils.showShort(StringUtils.getString(R.string.getphoneinfofail));
        }

    }

    /**
     * 添加 已处理 或者 已回访 内容。
     */
    private void methodHandlerComplaintHandlerOrFeedBackImages(SuggestionsDetailBean suggestionsDetailBean) {

        //===============================================================================================================
        textviewSuggestionFeedBackTimeDes.setText(StringUtils.getString(R.string.suggestionshandlertime));
        textViewSuggestionFeedBackContentDes.setText(StringUtils.getString(R.string.suggestionshandlercontent));
        //===============================================================================================================

        ArrayList<ComplaintImageBean> suggestionFinishImgList = suggestionsDetailBean.getSuggestionFinishImgList();

        //然后才有底部的  回复时间 回复内容。
        if (suggestionFinishImgList != null && !suggestionFinishImgList.isEmpty()) {

            //图片不是空，那么 就展示图片，图片是空就不展示图片。
            //包裹图片的外侧布局也展示
            CommUtils.setViewVisible(laycontentSuggestionhandlerImage);

            //九宫格的数据 仅仅提取图片的临时数据
            ArrayList<String> suggestionFinshStrings = new ArrayList<>();

            for (ComplaintImageBean complaintImageBeanItem : suggestionFinishImgList) {
                if (complaintImageBeanItem != null) {
                    suggestionFinshStrings.add(complaintImageBeanItem.getImgUrl());
                }
            }

            //图片的九宫格
            initGridView(suggestionFinshStrings, gridViewEmployeeFeedBackImages);

        } else {

            CommUtils.setViewGone(laycontentSuggestionhandlerImage);

        }

        //=======================================================================

    }

    /**
     * 处理底部的回访的 综合评价内容 和综合评价的文本内容
     */
    private void methodsatisfactionListForHF(ArrayList<EvaReapirSatisfactionBean> _satisfactionListForHF) {

        //填充九宫格内容
        //GridLayoutManager layoutManagerSatisfaction = new GridLayoutManager(mActivityInstance, 3);
        //layoutManagerSatisfaction.setOrientation(LinearLayoutManager.VERTICAL);
        //recyclerSatisfactionComplaintFeedback.setLayoutManager(layoutManagerSatisfaction);

        recyclerSatisfactionComplaintFeedback.setLayoutManager(new MyLinearLayoutManager(mActivityInstance));
        recyclerSatisfactionComplaintFeedback.clearAnimation();

        //普通呈现一个列表即可，没有其他事件内容.
        //物业项目不要报修人的姓名。仅仅展示评价信息,暂时不添加头部。
        //ratingbarInWorkAdapter.addHeaderView(getHeadView(context, recyclerViewIndetailBottomwork,"评价信息"));
        SatisfactionAdapter satisfactionAdapter = new SatisfactionAdapter(R.layout.satisfactionadapter, _satisfactionListForHF);
        //satisfactionAdapter.closeLoadAnimation();
        recyclerSatisfactionComplaintFeedback.setAdapter(satisfactionAdapter);
        satisfactionAdapter.notifyDataSetChanged();

    }


    private void openMain(int type) {

//        if (mGlobalSetting != null) {
//            mGlobalSetting = null;
//        }

        mGlobalSetting = MultiMediaSetting.from(ComplainFeedBackOrHandlerDetailActivity.this).choose(MimeType.ofImage());

        // 拍摄有关设置
        CameraSetting cameraSetting = initCameraSetting();

//        CameraSetting cameraSetting = new CameraSetting();
//        cameraSetting.mimeTypeSet(MimeType.ofImage());

//        相册,仅仅是图片
//        AlbumSetting albumSetting = new AlbumSetting(true)
//                // 支持的类型：图片，视频
//                .mimeTypeSet(MimeType.ofImage())
//                // 是否显示多选图片的数字
//                .countable(true)
//                // 自定义过滤器
//                .addFilter(new GifSizeFilter(320, 320, 5 * BaseFilter.K * BaseFilter.K))
//                // 开启原图
//                .originalEnable(true)
//                // 最大原图size,仅当originalEnable为true的时候才有效
//                .maxOriginalSize(3);

//        mGlobalSetting.albumSetting(albumSetting);
//        mGlobalSetting.cameraSetting(cameraSetting);

        if (type == 1) {

            // 相册,仅仅是图片
            AlbumSetting albumSetting = new AlbumSetting(true)
                    // 支持的类型：图片，视频
                    .mimeTypeSet(MimeType.ofImage())
                    // 是否显示多选图片的数字
                    .countable(true)
                    // 自定义过滤器
                    .addFilter(new GifSizeFilter(320, 320, 5 * BaseFilter.K * BaseFilter.K))
                    // 开启原图
                    .originalEnable(true)
                    // 最大原图size,仅当originalEnable为true的时候才有效
                    .maxOriginalSize(3);

            //开启相册的功能，相册放在左侧
            mGlobalSetting.albumSetting(albumSetting);
            //开启相机的功能。相机在右侧
            mGlobalSetting.cameraSetting(cameraSetting);

        } else if (type == 0) {

            //开启拍摄功能
            mGlobalSetting.cameraSetting(cameraSetting);

        }

        mGlobalSetting
                // 设置路径和7.0保护路径等等
                .allStrategy(new SaveStrategy(true,//
                        ConstantSign.FILE_PROVIDER, //fileProvider
                        ConstantSign.FOLDER_MIDDLELOW))//
                .isImageEdit(false)
                // for glide-V4
                .imageEngine(new Glide4Engine())
                // 最大5张图片、最大3个视频、最大1个音频
                .maxSelectablePerMediaType(null,
                        ConstantApi.MAX_IMAGE_SELECTABLE_PROPERTY_REPAIR,//整体设置；
                        ConstantApi.MAX_VIDEO_SELECTABLE_PROPERTY_REPAIR,
                        ConstantApi.MAX_AUDIO_SELECTABLE_PROPERTY_REPAIR,
                        uploadImageListPass.size(),//物业报修最大是3个图片
                        0,
                        0);
//                .forResult(REQUEST_CODE_CHOOSE);
        mGlobalSetting.forResult(new OnResultCallbackListener() {

            @Override
            public void onResult(@NonNull List<? extends LocalFile> result) {

                for (LocalFile localFile : result) {

                    if (localFile != null) {

//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult id:" + localFile.getId());
                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 绝对路径:" + localFile.getPath());
                        //args[1] = onResult 绝对路径:/storage/emulated/0/Android/data/com.ygxsk.carhome/files/Pictures/middlelow/IMAGE_20240124_040325966.jpg
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 旧图路径:" + localFile.getOldPath());

//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 原图路径:" + localFile.getOriginalPath());
                        //args[1] = onResult Uri:content://com.ygxsk.carhome.fileprovider/Pictures/Android/data/com.ygxsk.carhome/files/Pictures/middlelow/IMAGE_20240123_171336391.jpg

//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult Uri:" + localFile.getUri());
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 旧图Uri:" + localFile.getOldUri());
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 原图Uri:" + localFile.getOriginalUri());
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 文件大小: " + localFile.getSize());
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 视频音频长度: " + localFile.getDuration());
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 是否选择了原图: " + localFile.isOriginal());
//                    if (localFile.isImageOrGif()) {
//                        if (localFile.isImage()) {
//                            LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 图片类型");
//                        } else if (localFile.isImage()) {
//                            LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 图片类型");
//                        }
//                    } else if (localFile.isVideo()) {
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 视频类型");
//                    } else if (localFile.isAudio()) {
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 音频类型");
//                    }

//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 具体类型:" + localFile.getMimeType());

                        // 某些手机拍摄没有自带宽高，那么我们可以自己获取
//                        if (localFile.getWidth() == 0 && localFile.isVideo()) {
//                            if (localFile.getPath() != null) {
//                                MediaExtraInfo mediaExtraInfo = MediaUtils.getVideoSize(getApplication(), localFile.getPath());
//                                localFile.setWidth(mediaExtraInfo.getWidth());
//                                localFile.setHeight(mediaExtraInfo.getHeight());
//                                localFile.setDuration(mediaExtraInfo.getDuration());
//                            }
//                        }

//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 宽高: " + localFile.getWidth() + "x" + localFile.getHeight());
//                    LogUtils.d(ConstantSign.LOGCAT_NOMAL + "取出的uri路径=", com.zhongjh.common.utils.UriUtils.uriToFile(getApplicationContext(), localFile.getUri()).getPath());
                        //args[1] = /data/user/0/com.ygxsk.carhome/cache/1706001217800

                        //直接上传？
//                    method_uploadNoHttp(localFile.getPath());

                        if (!TextUtils.isEmpty(localFile.getPath())) {

                            fillImagesLogic(localFile.getPath());

                        } else {
                            ToastUtils.showShort(getResources().getString(R.string.path_image_null));
                        }

                    }

                }

            }

            @Override
            public void onResultFromPreview(@NonNull List<? extends MultiMedia> result, boolean apply) {

                if (apply) {

//                    for (MultiMedia multiMedia : result) {

                    // 绝对路径,AndroidQ如果存在不属于自己App下面的文件夹则无效
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult id:" + multiMedia.getId());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 绝对路径:" + multiMedia.getPath());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 旧图路径:" + multiMedia.getOldPath());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 原图路径:" + multiMedia.getOriginalPath());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult Uri:" + multiMedia.getUri());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 旧图Uri:" + multiMedia.getOldUri());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 原图Uri:" + multiMedia.getOriginalUri());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 文件大小: " + multiMedia.getSize());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 视频音频长度: " + multiMedia.getDuration());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 是否选择了原图: " + multiMedia.isOriginal());
//
//                        if (multiMedia.isImageOrGif()) {
//                            if (multiMedia.isImage()) {
//                                LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 图片类型");
//                            } else if (multiMedia.isImage()) {
//                                LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 图片类型");
//                            }
//                        } else if (multiMedia.isVideo()) {
////                            LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 视频类型");
//                        } else if (multiMedia.isAudio()) {
////                            LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 音频类型");
//                        }
//
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 具体类型:" + multiMedia.getMimeType());
//                        LogUtils.d(ConstantSign.LOGCAT_NOMAL, "onResult 宽高: " + multiMedia.getWidth() + "x" + multiMedia.getHeight());
//                    }

                }
            }
        });

    }

}